Platform Explorer / Nuxeo Platform 2023.11

Extension point providers

Contribution Descriptors

  • Class: org.nuxeo.ecm.platform.query.core.CoreQueryPageProviderDescriptor
  • Class: org.nuxeo.ecm.platform.query.core.GenericPageProviderDescriptor

Existing Contributions

Contributions are presented in the same order as the registration order on this extension point. This order is displayed before the contribution name, in brackets.

  • nuxeo-admin-center-core-2023.11.13.jar /OSGI-INF/pageproviders-contrib.xml
    <extension point="providers" target="org.nuxeo.ecm.platform.query.api.PageProviderService">
    
        <genericPageProvider class="org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider" name="permissions_purge">
          <searchDocumentType>PermissionsSearch</searchDocumentType>
          <whereClause>
            <fixedPart statement="SELECT ecm:uuid, dc:title, ecm:acl/*1/principal, ecm:acl/*1/creator, ecm:acl/*1/permission, ecm:acl/*1/begin, ecm:acl/*1/end, ecm:acl/*1/status FROM Document">
              ecm:mixinType != 'HiddenInNavigation'
              AND ecm:isVersion = 0
              AND SORTED_COLUMN IS NOT NULL
            </fixedPart>
            <predicate operator="IN" parameter="ecm:acl/*1/principal">
              <field name="ace_username" schema="permissions_search"/>
            </predicate>
            <predicate operator="IN" parameter="ecm:ancestorId">
              <field name="ecm_ancestorIds" schema="permissions_search"/>
            </predicate>
          </whereClause>
          <pageSize>20</pageSize>
          <sort ascending="true" column="dc:title"/>
        </genericPageProvider>
    
        <coreQueryPageProvider name="permissions_search_folders">
          <pattern escapeParameters="true" quoteParameters="false">
            SELECT * FROM Document WHERE dc:title LIKE '?%' AND ecm:mixinType = 'Folderish'
            AND ecm:mixinType != 'HiddenInNavigation' AND ecm:isVersion = 0 AND
            ecm:isTrashed = 0
          </pattern>
          <pageSize>10</pageSize>
        </coreQueryPageProvider>
    
        <genericPageProvider class="org.nuxeo.ecm.platform.audit.api.AuditPageProvider" name="EVENTS_VIEW">
          <searchDocumentType>BasicAuditSearch</searchDocumentType>
          <whereClause>
            <predicate operator="BETWEEN" parameter="log.eventDate">
              <field name="startDate" schema="basicauditsearch"/>
              <field name="endDate" schema="basicauditsearch"/>
            </predicate>
            <predicate operator="=" parameter="log.category">
              <field name="eventCategory" schema="basicauditsearch"/>
            </predicate>
            <predicate operator="IN" parameter="log.eventId">
              <field name="eventIds" schema="basicauditsearch"/>
            </predicate>
            <predicate operator="=" parameter="log.principalName">
              <field name="principalName" schema="basicauditsearch"/>
            </predicate>
          </whereClause>
          <sort ascending="false" column="log.eventDate"/>
          <pageSize>10</pageSize>
          <maxPageSize>1000</maxPageSize>
        </genericPageProvider>
    
        <genericPageProvider class="org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider" name="PERMISSIONS_SEARCH">
          <searchDocumentType>PermissionsSearch</searchDocumentType>
          <whereClause>
            <fixedPart escapeParameters="false" quoteParameters="false" statement="SELECT ecm:uuid, dc:title, ecm:acl/*1/principal, ecm:acl/*1/creator, ecm:acl/*1/permission,               ecm:acl/*1/begin, ecm:acl/*1/end, ecm:acl/*1/status FROM Document">
              ecm:mixinType != 'HiddenInNavigation'
              AND ecm:isVersion = 0
              AND SORTED_COLUMN IS NOT NULL
              ?
            </fixedPart>
            <predicate operator="IN" parameter="ecm:acl/*1/principal">
              <field name="ace_username" schema="permissions_search"/>
            </predicate>
            <predicate operator="IN" parameter="ecm:acl/*1/creator">
              <field name="ace_creator" schema="permissions_search"/>
            </predicate>
            <predicate operator="IN" parameter="ecm:acl/*1/permission">
              <field name="ace_permission" schema="permissions_search"/>
            </predicate>
            <predicate operator="&lt;=" parameter="ecm:acl/*1/begin">
              <field name="ace_begin" schema="permissions_search"/>
            </predicate>
            <predicate operator=">=" parameter="ecm:acl/*1/end">
              <field name="ace_end" schema="permissions_search"/>
            </predicate>
            <predicate operator="LIKE" parameter="ecm:acl/*1/name">
              <field name="ace_acl_name" schema="permissions_search"/>
            </predicate>
            <predicate operator="IN" parameter="ecm:ancestorId">
              <field name="ecm_ancestorIds" schema="permissions_search"/>
            </predicate>
          </whereClause>
          <parameter>#{adminPermissionsActions.ACEStatusFixedPart}</parameter>
          <pageSize>20</pageSize>
          <sort ascending="true" column="dc:title"/>
        </genericPageProvider>
    
    
      </extension>
  • nuxeo-aspera-core-2023.4.1.jar /OSGI-INF/aspera-pageproviders.xml
    <extension point="providers" target="org.nuxeo.ecm.platform.query.api.PageProviderService">
        <genericPageProvider class="org.nuxeo.elasticsearch.provider.ElasticSearchNxqlPageProvider" name="aspera_folderish_suggestion">
          <pattern escapeParameters="true" quoteParameters="false">
            SELECT * FROM Document WHERE ecm:fulltext LIKE '?*' AND ecm:mixinType = 'Folderish'
            AND ecm:mixinType NOT IN ('SystemDocument', 'HiddenInNavigation') AND ecm:isVersion = 0 AND ecm:isTrashed = 0
          </pattern>
        </genericPageProvider>
        <genericPageProvider class="org.nuxeo.elasticsearch.provider.ElasticSearchNxqlPageProvider" name="aspera_transfers_list">
          <searchDocumentType>AsperaSearch</searchDocumentType>
            <whereClause>
              <fixedPart>
                ecm:primaryType IN ('Transfer')
                AND ecm:isVersion = 0
                AND ecm:isTrashed = 0
              </fixedPart>
            </whereClause>
          <aggregates>
            <aggregate id="ecm_currentLifeCycleState_agg" parameter="ecm:currentLifeCycleState" type="terms">
              <field name="ecm_currentLifeCycleState_agg" schema="aspera_search"/>
            </aggregate>
          </aggregates>
          <sort ascending="false" column="dc:modified"/>
          <quickFilters>
            <quickFilter name="download">
              <clause>ca:type = 'download'</clause>
            </quickFilter>
            <quickFilter name="upload">
              <clause>ca:type = 'upload'</clause>
            </quickFilter>
          </quickFilters>
          <pageSize>10</pageSize>
        </genericPageProvider>
      </extension>
  • nuxeo-automation-features-2023.11.13.jar /OSGI-INF/pageprovider-contrib.xml
    <extension point="providers" target="org.nuxeo.ecm.platform.query.api.PageProviderService">
    
        <genericPageProvider class="org.nuxeo.ecm.platform.audit.api.AuditPageProvider" name="AUDIT_BROWSER">
          <searchDocumentType>BasicAuditSearch</searchDocumentType>
          <whereClause>
            <predicate operator=">" parameter="log.id">
              <field name="logId" schema="basicauditsearch"/>
            </predicate>
            <predicate operator="BETWEEN" parameter="log.eventDate">
              <field name="startDate" schema="basicauditsearch"/>
              <field name="endDate" schema="basicauditsearch"/>
            </predicate>
            <predicate operator="IN" parameter="log.category">
              <field name="eventCategories" schema="basicauditsearch"/>
            </predicate>
            <predicate operator="IN" parameter="log.eventId">
              <field name="eventIds" schema="basicauditsearch"/>
            </predicate>
            <predicate operator="IN" parameter="log.principalName">
              <field name="principalNames" schema="basicauditsearch"/>
            </predicate>
          </whereClause>
          <sort ascending="true" column="log.eventDate"/>
          <sort ascending="true" column="log.id"/>
          <pageSize>10</pageSize>
        </genericPageProvider>
    
      </extension>
  • nuxeo-automation-server-2023.11.13.jar /OSGI-INF/pageprovider-contrib.xml
    <extension point="providers" target="org.nuxeo.ecm.platform.query.api.PageProviderService">
        <coreQueryPageProvider name="CURRENT_DOC_CHILDREN">
          <property name="maxResults">PAGE_SIZE</property>
          <pattern>
            SELECT * FROM Document WHERE ecm:parentId = ? AND
            ecm:mixinType != 'HiddenInNavigation'
            AND ecm:isVersion = 0 AND ecm:isTrashed = 0
          </pattern>
          <sort ascending="true" column="dc:title"/>
          <pageSize>50</pageSize>
        </coreQueryPageProvider>
      </extension>
  • nuxeo-drive-core-2023.11.13.jar /OSGI-INF/nuxeodrive-pageproviders-contrib.xml
    <extension point="providers" target="org.nuxeo.ecm.platform.query.api.PageProviderService">
    
        <coreQueryPageProvider name="FOLDER_ITEM_CHILDREN">
          <pattern>
            SELECT * FROM Document WHERE ecm:parentId = ?
            AND ecm:isVersion = 0
            AND ecm:isTrashed = 0
            AND ecm:mixinType != 'HiddenInNavigation'
          </pattern>
          <sort ascending="true" column="dc:created"/>
          <pageSize>1000</pageSize>
          <maxPageSize>1000</maxPageSize>
          <property name="maxResults">PAGE_SIZE</property>
        </coreQueryPageProvider>
    
      </extension>
  • nuxeo-easyshare-core-2023.11.13.jar /OSGI-INF/easyshare-contrib.xml
    <extension point="providers" target="org.nuxeo.ecm.platform.query.api.PageProviderService">
        <coreQueryPageProvider name="EASYSHARE_FOLDER_CONTENT_PP">
          <pattern>
          <!-- Note: we want proxies.
           Parameter is the EasyFolder id -->
            SELECT * FROM Document WHERE ecm:parentId = ? AND ecm:isVersion = 0 AND
            ecm:mixinType != 'HiddenInNavigation'
            AND ecm:isTrashed = 0
          </pattern>
          <sort ascending="true" column="dc:title"/>
          <pageSize>0</pageSize>
          <maxPageSize>0</maxPageSize>
        </coreQueryPageProvider>
    
      </extension>
  • nuxeo-elasticsearch-core-2023.11.13.jar /OSGI-INF/search-pageprovider-contrib.xml
    <extension point="providers" target="org.nuxeo.ecm.platform.query.api.PageProviderService">
        <!-- technical page providers for testing repo vs elastic -->
        <coreQueryPageProvider name="nxql_repo_search">
          <trackUsage>true</trackUsage>
          <searchDocumentType>DefaultSearch</searchDocumentType>
          <pattern escapeParameters="false" quoteParameters="false">?</pattern>
          <pageSize>10</pageSize>
          <sort ascending="false" column="dc:modified"/>
        </coreQueryPageProvider>
    
        <genericPageProvider class="org.nuxeo.elasticsearch.provider.ElasticSearchNxqlPageProvider" name="nxql_elastic_search">
          <trackUsage>true</trackUsage>
          <searchDocumentType>DefaultSearch</searchDocumentType>
          <pattern escapeParameters="false" quoteParameters="false">?</pattern>
          <pageSize>10</pageSize>
          <sort ascending="false" column="dc:modified"/>
        </genericPageProvider>
    
      </extension>
  • nuxeo-liveconnect-2023.11.13.jar /OSGI-INF/liveconnect-box-pageprovider-contrib.xml
    <extension point="providers" target="org.nuxeo.ecm.platform.query.api.PageProviderService">
    
        <coreQueryPageProvider name="box_document_to_be_updated">
          <property name="maxResults">PAGE_SIZE</property>
          <pattern>
           SELECT * FROM Document WHERE content/data LIKE 'box:%' AND ecm:isVersion = 0
          </pattern>
          <sort ascending="true" column="ecm:uuid"/>
          <pageSize>50</pageSize>
        </coreQueryPageProvider>
    
      </extension>
  • nuxeo-liveconnect-2023.11.13.jar /OSGI-INF/liveconnect-googledrive-pageprovider-contrib.xml
    <extension point="providers" target="org.nuxeo.ecm.platform.query.api.PageProviderService">
    
        <coreQueryPageProvider name="googledrive_document_to_be_updated">
          <property name="maxResults">PAGE_SIZE</property>
          <pattern>
           SELECT * FROM Document WHERE content/data LIKE 'googledrive:%' AND ecm:isVersion = 0
          </pattern>
          <sort ascending="true" column="ecm:uuid"/>
          <pageSize>50</pageSize>
        </coreQueryPageProvider>
    
      </extension>
  • nuxeo-platform-audit-core-2023.11.13.jar /OSGI-INF/pageprovider-contrib.xml
    <extension point="providers" target="org.nuxeo.ecm.platform.query.api.PageProviderService">
    
        <genericPageProvider class="org.nuxeo.ecm.platform.audit.api.AuditPageProvider" name="DOCUMENT_HISTORY_PROVIDER_OLD">
          <searchDocumentType>BasicAuditSearch</searchDocumentType>
          <whereClause>
            <fixedPart>
              log.docUUID = ?
            </fixedPart>
            <predicate operator="BETWEEN" parameter="log.eventDate">
              <field name="startDate" schema="basicauditsearch"/>
              <field name="endDate" schema="basicauditsearch"/>
            </predicate>
            <predicate operator="IN" parameter="log.category">
              <field name="eventCategories" schema="basicauditsearch"/>
            </predicate>
            <predicate operator="=" parameter="log.eventId">
              <field name="eventId" schema="basicauditsearch"/>
            </predicate>
          </whereClause>
          <sort ascending="true" column="log.eventDate"/>
          <pageSize>10</pageSize>
        </genericPageProvider>
    
        <genericPageProvider class="org.nuxeo.ecm.platform.audit.api.AuditPageProvider" name="LATEST_AUDITED_CREATED_USERS_OR_GROUPS_PROVIDER">
          <searchDocumentType>BasicAuditSearch</searchDocumentType>
          <whereClause>
            <fixedPart>
              log.eventId = 'user_created' OR log.eventId = 'group_created'
            </fixedPart>
          </whereClause>
          <sort ascending="false" column="log.eventDate"/>
          <pageSize>10</pageSize>
        </genericPageProvider>
    
        <genericPageProvider class="org.nuxeo.ecm.platform.audit.provider.LatestCreatedUsersOrGroupsPageProvider" name="LATEST_CREATED_USERS_OR_GROUPS_PROVIDER">
        </genericPageProvider>
    
        <genericPageProvider class="org.nuxeo.ecm.platform.audit.api.document.DocumentHistoryPageProvider" name="DOCUMENT_HISTORY_PROVIDER">
          <searchDocumentType>BasicAuditSearch</searchDocumentType>
          <whereClause>
            <predicate operator="BETWEEN" parameter="log.eventDate">
              <field name="startDate" schema="basicauditsearch"/>
              <field name="endDate" schema="basicauditsearch"/>
            </predicate>
            <predicate operator="=" parameter="log.category">
              <field name="eventCategory" schema="basicauditsearch"/>
            </predicate>
            <predicate operator="IN" parameter="log.category">
              <field name="eventCategories" schema="basicauditsearch"/>
            </predicate>
            <predicate operator="=" parameter="log.eventId">
              <field name="eventId" schema="basicauditsearch"/>
            </predicate>
            <predicate operator="IN" parameter="log.eventId">
              <field name="eventIds" schema="basicauditsearch"/>
            </predicate>
            <predicate operator="=" parameter="log.principalName">
              <field name="principalName" schema="basicauditsearch"/>
            </predicate>
            <predicate operator="IN" parameter="log.principalName">
              <field name="principalNames" schema="basicauditsearch"/>
            </predicate>
          </whereClause>
          <sort ascending="false" column="log.eventDate"/>
          <sort ascending="false" column="log.id"/>
          <pageSize>10</pageSize>
          <maxPageSize>1000</maxPageSize>
        </genericPageProvider>
    
      </extension>
  • nuxeo-elasticsearch-audit-2023.11.13.jar /OSGI-INF/es-audit-pageprovider-contrib.xml
    <extension point="providers" target="org.nuxeo.ecm.platform.query.api.PageProviderService">
    
        <genericPageProvider class="org.nuxeo.elasticsearch.audit.pageprovider.ESAuditPageProvider" name="EVENTS_VIEW">
          <property name="coreSession">#{documentManager}</property>
          <property name="generateUIComments">false</property>
          <searchDocumentType>BasicAuditSearch</searchDocumentType>
          <whereClause>
            <predicate operator="BETWEEN" parameter="eventDate">
              <field name="startDate" schema="basicauditsearch"/>
              <field name="endDate" schema="basicauditsearch"/>
            </predicate>
            <predicate operator="=" parameter="category">
              <field name="eventCategory" schema="basicauditsearch"/>
            </predicate>
            <predicate operator="IN" parameter="eventId">
              <field name="eventIds" schema="basicauditsearch"/>
            </predicate>
            <predicate operator="=" parameter="principalName">
              <field name="principalName" schema="basicauditsearch"/>
            </predicate>
          </whereClause>
          <sort ascending="false" column="eventDate"/>
          <pageSize>10</pageSize>
          <maxPageSize>1000</maxPageSize>
        </genericPageProvider>
    
        <genericPageProvider class="org.nuxeo.elasticsearch.audit.pageprovider.ESAuditPageProvider" name="DOCUMENT_HISTORY_PROVIDER_OLD">
          <searchDocumentType>BasicAuditSearch</searchDocumentType>
          <whereClause>
            <fixedPart>
                {
    		        "bool" : {
    		          "must" : {
    		            "match" : {
    		              "docUUID" : {
    		                "query" : "?"
    		              }
    		            }
    		          }
    		        }
    			  }
            </fixedPart>
            <predicate operator="BETWEEN" parameter="eventDate">
              <field name="startDate" schema="basicauditsearch"/>
              <field name="endDate" schema="basicauditsearch"/>
            </predicate>
            <predicate operator="IN" parameter="category">
              <field name="eventCategories" schema="basicauditsearch"/>
            </predicate>
            <predicate operator="IN" parameter="eventId">
              <field name="eventIds" schema="basicauditsearch"/>
            </predicate>
            <predicate operator="IN" parameter="principalName">
              <field name="principalNames" schema="basicauditsearch"/>
            </predicate>
          </whereClause>
          <sort ascending="true" column="id"/>
          <pageSize>5</pageSize>
        </genericPageProvider>
    
    
        <genericPageProvider class="org.nuxeo.elasticsearch.audit.pageprovider.ESDocumentHistoryPageProvider" name="DOCUMENT_HISTORY_PROVIDER">
          <searchDocumentType>BasicAuditSearch</searchDocumentType>
          <whereClause>
            <predicate operator="BETWEEN" parameter="eventDate">
              <field name="startDate" schema="basicauditsearch"/>
              <field name="endDate" schema="basicauditsearch"/>
            </predicate>
            <predicate operator="IN" parameter="category">
              <field name="eventCategories" schema="basicauditsearch"/>
            </predicate>
            <predicate operator="IN" parameter="eventId">
              <field name="eventIds" schema="basicauditsearch"/>
            </predicate>
            <predicate operator="IN" parameter="principalName">
              <field name="principalNames" schema="basicauditsearch"/>
            </predicate>
          </whereClause>
          <sort ascending="false" column="eventDate"/>
            <pageSize>10</pageSize>
            <maxPageSize>1000</maxPageSize>
        </genericPageProvider>
    
          <genericPageProvider class="org.nuxeo.elasticsearch.audit.pageprovider.ESAuditPageProvider" name="ADMIN_HISTORY">
            <property name="coreSession"/>
            <property name="generateUIComments">false</property>
            <searchDocumentType>BasicAuditSearch</searchDocumentType>
            <whereClause>
              <predicate operator="BETWEEN" parameter="eventDate">
                <field name="startDate" schema="basicauditsearch"/>
                <field name="endDate" schema="basicauditsearch"/>
              </predicate>
              <predicate operator="=" parameter="category">
                <field name="eventCategory" schema="basicauditsearch"/>
              </predicate>
              <predicate operator="IN" parameter="eventId">
                <field name="eventIds" schema="basicauditsearch"/>
              </predicate>
              <predicate operator="=" parameter="principalName">
                <field name="principalName" schema="basicauditsearch"/>
              </predicate>
            </whereClause>
            <sort ascending="false" column="eventDate"/>
            <pageSize>10</pageSize>
            <maxPageSize>1000</maxPageSize>
          </genericPageProvider>
    
      <genericPageProvider class="org.nuxeo.elasticsearch.audit.pageprovider.ESDocumentHistoryPageProvider" name="LATEST_AUDITED_CREATED_USERS_OR_GROUPS_PROVIDER">
         <pattern>
    {
      "query": {
        "bool": {
          "must": [
            {
              "term": {
                "category": "userGroup"
              }
            },
            {
              "bool": {
                "should": [
                  {
                    "term": {
                      "eventId": "user_created"
                    }
                  },
                  {
                    "term": {
                      "eventId": "group_created"
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    }
        </pattern>
        <sort ascending="false" column="eventDate"/>
        <pageSize>5</pageSize>
        <maxPageSize>100</maxPageSize>
      </genericPageProvider>
    
      </extension>
  • nuxeo-platform-collections-core-2023.11.13.jar /OSGI-INF/collection-pageprovider-contrib.xml
    <extension point="providers" target="org.nuxeo.ecm.platform.query.api.PageProviderService">
    
        <coreQueryPageProvider name="default_collection">
          <property name="maxResults">PAGE_SIZE</property>
          <pattern escapeParameters="true" quoteParameters="false">
            SELECT * FROM Document WHERE /*+ES: INDEX(dc:title.fulltext) OPERATOR(match_phrase_prefix) */
            dc:title ILIKE '?%' AND ecm:mixinType = 'Collection' AND ecm:primaryType != 'Favorites' AND
            ecm:isProxy = 0 AND ecm:mixinType != 'HiddenInNavigation' AND
            ecm:isVersion = 0 AND ecm:isTrashed = 0
          </pattern>
          <sort ascending="true" column="dc:title"/>
          <pageSize>50</pageSize>
        </coreQueryPageProvider>
    
        <coreQueryPageProvider name="user_collections">
          <pattern escapeParameters="true" quoteParameters="true">
            SELECT * FROM Document WHERE /*+ES: INDEX(dc:title.fulltext) OPERATOR(match_phrase_prefix) */
            dc:title ILIKE :searchTerm AND ecm:mixinType = 'Collection' AND
            ecm:primaryType != 'Favorites' AND
            ecm:isProxy = 0 AND ecm:mixinType != 'HiddenInNavigation' AND
            ecm:isVersion = 0 AND ecm:isTrashed = 0
          </pattern>
          <parameter>#{currentUser.name}</parameter>
          <sort ascending="false" column="dc:modified"/>
          <pageSize>50</pageSize>
        </coreQueryPageProvider>
    
        <coreQueryPageProvider name="default_collection_candidate">
          <property name="maxResults">PAGE_SIZE</property>
          <pattern escapeParameters="true" quoteParameters="false">
            SELECT * FROM Document WHERE /*+ES: INDEX(dc:title.fulltext) OPERATOR(match_phrase_prefix) */ dc:title ILIKE '?%'
            AND ecm:mixinType != 'SystemDocument' AND ecm:mixinType !=
            'NotCollectionMember' AND ecm:mixinType != 'HiddenInNavigation' AND
            ecm:isTrashed = 0
          </pattern>
          <sort ascending="true" column="dc:title"/>
          <pageSize>50</pageSize>
        </coreQueryPageProvider>
    
        <coreQueryPageProvider name="default_content_collection">
          <pattern>
            SELECT * FROM Document where ecm:mixinType != 'HiddenInNavigation' AND
            ecm:isTrashed = 0
            AND collectionMember:collectionIds/* = ?
          </pattern>
          <sort ascending="true" column="dc:title"/>
          <pageSize>50</pageSize>
        </coreQueryPageProvider>
    
        <coreQueryPageProvider name="ordered_content_collection">
          <pattern>
            SELECT collection:documentIds/* FROM Document where ecm:mixinType != 'HiddenInNavigation' AND
            ecm:isVersion = 0 AND ecm:isTrashed = 0
            AND ecm:uuid = ?
          </pattern>
          <pageSize>50</pageSize>
        </coreQueryPageProvider>
    
        <coreQueryPageProvider name="all_collections">
          <property name="maxResults">PAGE_SIZE</property>
          <pattern>
            SELECT * FROM Document WHERE ecm:mixinType = 'Collection' AND
            ecm:isProxy = 0 AND ecm:mixinType != 'HiddenInNavigation' AND
            ecm:isVersion = 0 AND ecm:isTrashed = 0
          </pattern>
          <pageSize>1000</pageSize>
        </coreQueryPageProvider>
    
      </extension>
  • nuxeo-platform-comment-2023.11.13.jar /OSGI-INF/comment-pageprovider-contrib.xml
    <extension point="providers" target="org.nuxeo.ecm.platform.query.api.PageProviderService">
    
        <!-- deprecated since 11.1 -->
        <!-- TreeCommentManager & PropertyCommentManager use it to provide backward compatibility on external entity API -->
        <coreQueryPageProvider name="GET_COMMENT_AS_EXTERNAL_ENTITY">
          <pattern>
            SELECT * FROM Comment WHERE ecm:path STARTSWITH '/' AND externalEntity:entityId = ?
          </pattern>
          <pageSize>0</pageSize>
          <maxPageSize>0</maxPageSize>
        </coreQueryPageProvider>
    
        <!-- deprecated since 11.1 / PropertyCommentManager uses it -->
        <coreQueryPageProvider name="GET_COMMENTS_FOR_DOCUMENT">
          <pattern>
            SELECT * FROM Comment WHERE comment:parentId = ?
          </pattern>
          <pageSize>0</pageSize>
          <maxPageSize>0</maxPageSize>
        </coreQueryPageProvider>
    
        <!-- deprecated since 11.1 / unused -->
        <coreQueryPageProvider name="GET_ANNOTATION_AS_EXTERNAL_ENTITY">
          <pattern>
            SELECT * FROM Annotation WHERE ecm:path STARTSWITH '/' AND externalEntity:entityId = ?
          </pattern>
          <pageSize>0</pageSize>
          <maxPageSize>0</maxPageSize>
        </coreQueryPageProvider>
    
        <!-- deprecated since 11.1 / AnnotationService uses it when PropertyCommentManager is in place-->
        <coreQueryPageProvider name="GET_ANNOTATIONS_FOR_DOCUMENT">
          <pattern>
            SELECT * FROM Annotation WHERE comment:parentId = ? AND annotation:xpath = ?
          </pattern>
          <pageSize>0</pageSize>
          <maxPageSize>0</maxPageSize>
        </coreQueryPageProvider>
    
        <!-- deprecated since 11.1 / PropertyCommentManager uses it -->
        <coreQueryPageProvider name="GET_EXTERNAL_COMMENT_BY_COMMENT_ANCESTOR">
          <pattern>
            SELECT * FROM Comment WHERE comment:ancestorIds = ? AND externalEntity:entityId = ?
          </pattern>
          <pageSize>0</pageSize>
          <maxPageSize>0</maxPageSize>
        </coreQueryPageProvider>
    
        <!-- used by TreeCommentManager -->
        <coreQueryPageProvider name="GET_COMMENTS_FOR_DOCUMENT_BY_ECM_PARENT">
          <pattern>
            SELECT * FROM Comment WHERE ecm:parentId = ?
          </pattern>
          <pageSize>0</pageSize>
          <maxPageSize>0</maxPageSize>
        </coreQueryPageProvider>
    
        <!-- used by TreeCommentManager -->
        <coreQueryPageProvider name="GET_EXTERNAL_COMMENT_BY_ECM_ANCESTOR">
          <pattern>
            SELECT * FROM Comment WHERE ecm:ancestorId = ? AND externalEntity:entityId = ?
          </pattern>
          <pageSize>0</pageSize>
          <maxPageSize>0</maxPageSize>
        </coreQueryPageProvider>
    
        <!-- used by PropertyCommentManager & TreeCommentManager -->
        <!-- currently not possible to do a ecm:ancestorId IN (..) -->
        <coreQueryPageProvider name="GET_COMMENTS_FOR_DOCUMENTS_BY_COMMENT_ANCESTOR">
          <pattern>
            SELECT * FROM Comment WHERE comment:ancestorIds IN ?
          </pattern>
          <pageSize>0</pageSize>
          <maxPageSize>0</maxPageSize>
        </coreQueryPageProvider>
    
        <!-- AnnotationService uses it when TreeCommentManager is in place-->
        <coreQueryPageProvider name="GET_ANNOTATIONS_FOR_DOCUMENT_BY_ECM_PARENT">
          <pattern>
            SELECT * FROM Annotation WHERE ecm:parentId = ? AND annotation:xpath = ?
          </pattern>
          <pageSize>0</pageSize>
          <maxPageSize>0</maxPageSize>
        </coreQueryPageProvider>
    
      </extension>
  • nuxeo-platform-comment-workflow-2023.11.13.jar /OSGI-INF/comment-pageprovider-contrib.xml
    <extension point="providers" target="org.nuxeo.ecm.platform.query.api.PageProviderService">
    
        <coreQueryPageProvider name="GET_COMMENT_MODERATION_TASKS">
          <pattern>
            SELECT * FROM Document WHERE ecm:mixinType = 'Task' AND
            ecm:currentLifeCycleState
            NOT IN ('ended', 'cancelled') AND ecm:isProxy =
            0 AND nt:targetDocumentId = ? AND nt:actors/* IN (?) AND
            nt:task_variables/*/key = 'commentId' AND nt:task_variables/*/value = ?
          </pattern>
          <pageSize>0</pageSize>
          <maxPageSize>0</maxPageSize>
        </coreQueryPageProvider>
    
      </extension>
  • nuxeo-platform-default-config-2023.11.13.jar /OSGI-INF/document-pageprovider-contrib.xml
    <extension point="providers" target="org.nuxeo.ecm.platform.query.api.PageProviderService">
    
        <coreQueryPageProvider name="document_content">
          <searchDocumentType>AdvancedSearch</searchDocumentType>
          <whereClause>
            <predicate operator="FULLTEXT" parameter="ecm:fulltext">
              <field name="fulltext_all" schema="advanced_search"/>
            </predicate>
            <predicate operator="FULLTEXT" parameter="dc:title">
              <field name="title" schema="advanced_search"/>
            </predicate>
            <predicate operator="BETWEEN" parameter="dc:modified">
              <field name="modified_min" schema="advanced_search"/>
              <field name="modified_max" schema="advanced_search"/>
            </predicate>
            <fixedPart>
              ecm:parentId = ? AND ecm:isVersion = 0 AND
              ecm:mixinType != 'HiddenInNavigation' AND ecm:isTrashed = 0
            </fixedPart>
          </whereClause>
          <sort ascending="true" column="dc:title"/>
          <pageSize>20</pageSize>
        </coreQueryPageProvider>
    
        <coreQueryPageProvider name="advanced_document_content">
          <trackUsage>true</trackUsage>
          <property name="maxResults">DEFAULT_NAVIGATION_RESULTS</property>
          <searchDocumentType>AdvancedContent</searchDocumentType>
          <whereClause>
            <fixedPart>
              ecm:isVersion = 0 AND
              ecm:mixinType !=
              'HiddenInNavigation'
            </fixedPart>
            <predicate operator="FULLTEXT" parameter="dc:title">
              <field name="title" schema="advanced_content"/>
            </predicate>
            <predicate operator="=" parameter="ecm:parentId">
              <field name="ecm_parentId" schema="advanced_content"/>
            </predicate>
            <predicate operator="=" parameter="ecm:isTrashed">
              <field name="ecm_trashed" schema="advanced_content"/>
            </predicate>
          </whereClause>
          <aggregates>
            <aggregate id="dc_last_contributor_agg" parameter="dc:lastContributor" type="terms">
              <field name="dc_last_contributor_agg" schema="advanced_content"/>
              <properties>
                <property name="size">10</property>
              </properties>
            </aggregate>
            <aggregate id="dc_modified_agg" parameter="dc:modified" type="date_range">
              <field name="dc_modified_agg" schema="advanced_content"/>
              <properties>
                <property name="format">"dd-MM-yyyy"</property>
              </properties>
              <dateRanges>
                <dateRange fromDate="now-24H" key="last24h" toDate="now"/>
                <dateRange fromDate="now-7d" key="lastWeek" toDate="now-24H"/>
                <dateRange fromDate="now-1M" key="lastMonth" toDate="now-7d"/>
                <dateRange fromDate="now-1y" key="lastYear" toDate="now-1M"/>
                <dateRange key="priorToLastYear" toDate="now-1y"/>
              </dateRanges>
            </aggregate>
          </aggregates>
          <sort ascending="false" column="dc:modified"/>
          <pageSize>20</pageSize>
        </coreQueryPageProvider>
    
        <coreQueryPageProvider name="document_trash_content">
          <searchDocumentType>AdvancedSearch</searchDocumentType>
          <whereClause>
            <predicate operator="FULLTEXT" parameter="ecm:fulltext">
              <field name="fulltext_all" schema="advanced_search"/>
            </predicate>
            <predicate operator="FULLTEXT" parameter="dc:title">
              <field name="title" schema="advanced_search"/>
            </predicate>
            <predicate operator="BETWEEN" parameter="dc:modified">
              <field name="modified_min" schema="advanced_search"/>
              <field name="modified_max" schema="advanced_search"/>
            </predicate>
            <fixedPart>
              ecm:parentId = ? AND ecm:isVersion = 0 AND
              ecm:mixinType !=
              'HiddenInNavigation' AND ecm:isTrashed = 1
            </fixedPart>
          </whereClause>
          <sort ascending="true" column="dc:title"/>
          <pageSize>20</pageSize>
        </coreQueryPageProvider>
    
        <coreQueryPageProvider name="section_content">
          <searchDocumentType>AdvancedSearch</searchDocumentType>
          <whereClause>
            <predicate operator="FULLTEXT" parameter="ecm:fulltext">
              <field name="fulltext_all" schema="advanced_search"/>
            </predicate>
            <predicate operator="FULLTEXT" parameter="dc:title">
              <field name="title" schema="advanced_search"/>
            </predicate>
            <predicate operator="BETWEEN" parameter="dc:modified">
              <field name="modified_min" schema="advanced_search"/>
              <field name="modified_max" schema="advanced_search"/>
            </predicate>
            <fixedPart>
              ecm:parentId = ? AND ecm:isVersion = 0 AND
              ecm:mixinType !=
              'HiddenInNavigation' AND ecm:isTrashed = 0
            </fixedPart>
          </whereClause>
          <sort ascending="true" column="dc:title"/>
          <pageSize>20</pageSize>
        </coreQueryPageProvider>
    
        <coreQueryPageProvider name="orderable_document_content">
          <searchDocumentType>AdvancedSearch</searchDocumentType>
          <whereClause>
            <predicate operator="FULLTEXT" parameter="ecm:fulltext">
              <field name="fulltext_all" schema="advanced_search"/>
            </predicate>
            <predicate operator="FULLTEXT" parameter="dc:title">
              <field name="title" schema="advanced_search"/>
            </predicate>
            <predicate operator="BETWEEN" parameter="dc:modified">
              <field name="modified_min" schema="advanced_search"/>
              <field name="modified_max" schema="advanced_search"/>
            </predicate>
            <fixedPart>
              ecm:parentId = ? AND ecm:isVersion = 0 AND
              ecm:mixinType !=
              'HiddenInNavigation' AND ecm:isTrashed = 0
            </fixedPart>
          </whereClause>
          <sort ascending="true" column="ecm:pos"/>
          <sortable>false</sortable>
          <pageSize>20</pageSize>
        </coreQueryPageProvider>
    
      </extension>
  • nuxeo-platform-default-config-2023.11.13.jar /OSGI-INF/pageprovider-contrib.xml
    <extension point="providers" target="org.nuxeo.ecm.platform.query.api.PageProviderService">
    
        <documentation>
          This contribution declares page providers used by UI components.
    
          The page provider 'tree_children' is used to list children in the tree
          navigation.
    
          Note the "ecm:isProxy = 0" predicate optimization that is required to
          simplify greatly the request performed by the tree manager when browsing
          on folders with a lot of files when using the Visible SQL Storage.
    
          The page provider 'default_document_suggestion' is used by default by the
          component performing document suggestions.
        </documentation>
    
        <coreQueryPageProvider name="tree_children">
          <property name="maxResults">PAGE_SIZE</property>
          <pattern>
            SELECT * FROM Document WHERE ecm:parentId = ? AND ecm:isProxy = 0 AND
            ecm:mixinType = 'Folderish' AND ecm:mixinType != 'HiddenInNavigation'
            AND ecm:isVersion = 0 AND ecm:isTrashed = 0
          </pattern>
          <sort ascending="true" column="ecm:pos"/>
          <sort ascending="true" column="dc:title"/>
          <pageSize>50</pageSize>
        </coreQueryPageProvider>
    
        <coreQueryPageProvider name="default_document_suggestion">
          <property name="maxResults">PAGE_SIZE</property>
          <pattern escapeParameters="true" quoteParameters="false">
            SELECT * FROM Document WHERE ecm:fulltext LIKE '?*' AND ecm:mixinType !=
            'HiddenInNavigation' AND ecm:isVersion = 0 AND
            ecm:isTrashed = 0
          </pattern>
          <!-- sort column="dc:title" ascending="true" / sort by fulltext relevance -->
          <pageSize>5</pageSize>
        </coreQueryPageProvider>
    
        <coreQueryPageProvider name="domain_documents">
          <property name="maxResults">DEFAULT_NAVIGATION_RESULTS</property>
          <pattern>
            SELECT * FROM Document WHERE ecm:path STARTSWITH ?
            AND ecm:mixinType != 'Folderish' AND ecm:mixinType !=
            'SystemDocument' AND ecm:mixinType !=
            'HiddenInNavigation' AND ecm:isVersion = 0 AND ecm:isProxy = 0
            AND ecm:isTrashed = 0
          </pattern>
          <sort ascending="false" column="dc:modified"/>
          <pageSize>5</pageSize>
        </coreQueryPageProvider>
    
      </extension>
  • nuxeo-platform-directory-api-2023.11.13.jar /OSGI-INF/pageproviders-contrib.xml
    <extension point="providers" target="org.nuxeo.ecm.platform.query.api.PageProviderService">
    
        <genericPageProvider class="org.nuxeo.ecm.directory.providers.DirectoryEntryPageProvider" name="nuxeo_directory_entry_listing">
          <pageSize>20</pageSize>
        </genericPageProvider>
    
      </extension>
  • nuxeo-platform-filemanager-2023.11.13.jar /OSGI-INF/nxfilemanager-pageprovider-contrib.xml
    <extension point="providers" target="org.nuxeo.ecm.platform.query.api.PageProviderService">
    
        <coreQueryPageProvider name="DEFAULT_CREATION_CONTAINER_LIST_PROVIDER">
          <pattern>
            SELECT * FROM Document WHERE ecm:primaryType IN ('Workspace',
            'Folder') AND ecm:isTrashed = 0
          </pattern>
          <sort ascending="true" column="ecm:path"/>
        </coreQueryPageProvider>
    
      </extension>
  • nuxeo-platform-imaging-core-2023.11.13.jar /OSGI-INF/imaging-pageprovider-contrib.xml
    <extension point="providers" target="org.nuxeo.ecm.platform.query.api.PageProviderService">
    
        <coreQueryPageProvider name="document_picker">
          <trackUsage>true</trackUsage>
          <searchDocumentType>AdvancedSearch</searchDocumentType>
          <whereClause>
            <predicate operator="FULLTEXT" parameter="ecm:fulltext">
              <field name="fulltext_all" schema="advanced_search"/>
            </predicate>
            <fixedPart>
              ecm:mixinType = 'Picture' AND
              file:content IS NOT NULL AND
              ecm:mixinType != 'HiddenInNavigation' AND
              ecm:isVersion = 0 AND
              ecm:isTrashed = 0
            </fixedPart>
          </whereClause>
          <pageSize>20</pageSize>
        </coreQueryPageProvider>
    
      </extension>
  • nuxeo-platform-publisher-2023.11.13.jar /OSGI-INF/publisher-pageprovider-contrib.xml
    <extension point="providers" target="org.nuxeo.ecm.platform.query.api.PageProviderService">
        <coreQueryPageProvider name="domains_for_publishing">
          <pattern>
            SELECT * FROM Document WHERE ecm:primaryType = 'Domain'
            AND ecm:parentId = ? AND ecm:isTrashed = 0
          </pattern>
          <sort ascending="true" column="dc:title"/>
          <pageSize>50</pageSize>
        </coreQueryPageProvider>
    
        <coreQueryPageProvider name="publish_space_suggestion">
          <pattern escapeParameters="true" quoteParameters="false">
            SELECT * FROM Document WHERE dc:title ILIKE '?%'
              AND ecm:mixinType = 'PublishSpace' AND ecm:isVersion = 0 AND
              ecm:isTrashed = 0
          </pattern>
          <sort ascending="true" column="dc:title"/>
          <pageSize>50</pageSize>
        </coreQueryPageProvider>
      </extension>
  • nuxeo-dam-2023.11.13.jar /OSGI-INF/dam-page-provider-contrib.xml
    <extension point="providers" target="org.nuxeo.ecm.platform.query.api.PageProviderService">
    
        <genericPageProvider class="org.nuxeo.elasticsearch.provider.ElasticSearchNxqlPageProvider" name="assets_search">
          <searchDocumentType>AssetsSearch</searchDocumentType>
          <whereClause>
            <predicate operator="FULLTEXT ALL" parameter="ecm:fulltext">
              <field name="ecm_fulltext" schema="assets_search"/>
            </predicate>
            <fixedPart>ecm:mixinType IN ('Picture', 'Audio', 'Video') AND ecm:isVersion = 0 AND
              ecm:isTrashed = 0 AND ecm:isProxy=0
            </fixedPart>
          </whereClause>
          <aggregates>
            <aggregate id="system_primaryType_agg" parameter="ecm:primaryType" type="terms">
              <field name="system_primaryType_agg" schema="assets_search"/>
            </aggregate>
            <aggregate id="system_mimetype_agg" parameter="file:content/mime-type" type="terms">
              <field name="system_mimetype_agg" schema="assets_search"/>
            </aggregate>
            <aggregate id="asset_width_agg" parameter="picture:info/width" type="range">
              <field name="asset_width_agg" schema="assets_search"/>
              <ranges>
                <range key="to_500_px" to="500.0"/>
                <range from="500.0" key="from_500_to_1500_px" to="1500.0"/>
                <range from="1500.0" key="from_1500_to_2000_px" to="2000.0"/>
                <range from="2000.0" key="from_2000_px"/>
              </ranges>
            </aggregate>
            <aggregate id="asset_height_agg" parameter="picture:info/height" type="range">
              <field name="asset_height_agg" schema="assets_search"/>
              <ranges>
                <range key="to_500_px" to="500.0"/>
                <range from="500.0" key="from_500_to_1500_px" to="1500.0"/>
                <range from="1500.0" key="from_1500_to_2000_px" to="2000.0"/>
                <range from="2000.0" key="from_2000_px"/>
              </ranges>
            </aggregate>
            <aggregate id="color_profile_agg" parameter="picture:info/colorSpace" type="terms">
              <field name="color_profile_agg" schema="assets_search"/>
            </aggregate>
            <aggregate id="color_depth_agg" parameter="picture:info/depth" type="terms">
              <field name="color_depth_agg" schema="assets_search"/>
            </aggregate>
            <aggregate id="video_duration_agg" parameter="vid:info/duration" type="range">
              <field name="video_duration_agg" schema="assets_search"/>
              <ranges>
                <range key="to_30_s" to="30.0"/>
                <range from="30.0" key="from_30_to_180_s" to="180.0"/>
                <range from="180.0" key="from_180_to_600_s" to="600.0"/>
                <range from="600.0" key="from_600_to_1800_s" to="1800.0"/>
                <range from="1800.0" key="from_1800_s"/>
              </ranges>
            </aggregate>
          </aggregates>
          <pageSize>20</pageSize>
        </genericPageProvider>
    
      </extension>
  • nuxeo-platform-suggestbox-core-2023.11.13.jar /OSGI-INF/suggestbox-pageproviders-contrib.xml
    <extension point="providers" target="org.nuxeo.ecm.platform.query.api.PageProviderService">
    
          <coreQueryPageProvider name="DEFAULT_DOCUMENT_SUGGESTION">
            <property name="maxResults">PAGE_SIZE</property>
            <pattern escapeParameters="true" quoteParameters="false">
              SELECT * FROM Document WHERE /*+ES: INDEX(dc:title.fulltext) OPERATOR(match_phrase_prefix) */ ecm:fulltext.dc:title LIKE '?' AND ecm:mixinType !=
              'HiddenInNavigation' AND ecm:isVersion = 0 AND
              ecm:isTrashed = 0 AND ecm:parentId IS NOT NULL
            </pattern>
            <pageSize>10</pageSize>
          </coreQueryPageProvider>
    
      </extension>
  • nuxeo-platform-tag-2023.11.13.jar /OSGI-INF/tag-pageprovider-contrib.xml
    <extension point="providers" target="org.nuxeo.ecm.platform.query.api.PageProviderService">
    
        <genericPageProvider class="org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider" name="GET_DOCUMENT_IDS_FOR_FACETED_TAG">
          <property name="useUnrestrictedSession">true</property>
          <pattern>
            SELECT DISTINCT ecm:uuid FROM Document WHERE nxtag:tags/*/label = ?
          </pattern>
          <pageSize>0</pageSize>
          <maxPageSize>0</maxPageSize>
        </genericPageProvider>
    
        <genericPageProvider class="org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider" name="GET_DOCUMENT_IDS_FOR_TAG">
          <property name="useUnrestrictedSession">true</property>
          <pattern>
            SELECT ecm:uuid FROM Tag WHERE tag:label = ? AND ecm:isProxy = 0
          </pattern>
          <pageSize>1</pageSize>
        </genericPageProvider>
    
        <genericPageProvider class="org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider" name="GET_FIRST_TAGGING_FOR_DOC_AND_TAG">
          <property name="useUnrestrictedSession">true</property>
          <pattern>
            SELECT ecm:uuid FROM Tagging WHERE relation:source = ? AND
            relation:target = ?
          </pattern>
          <pageSize>1</pageSize>
        </genericPageProvider>
    
        <genericPageProvider class="org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider" name="GET_FIRST_TAGGING_FOR_DOC_AND_TAG_AND_USER">
          <property name="useUnrestrictedSession">true</property>
          <pattern>
            SELECT ecm:uuid FROM Tagging WHERE relation:source = ? AND
            relation:target = ? AND dc:creator = ?
          </pattern>
          <pageSize>1</pageSize>
        </genericPageProvider>
    
        <!-- page provider that can be optimized using ES for instance -->
        <genericPageProvider class="org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider" name="GET_TAGS_FOR_DOCUMENT">
          <property name="useUnrestrictedSession">true</property>
          <property name="language">NXTAG</property>
          <pattern>
            TAGISTARGET: SELECT DISTINCT tag:label FROM Tagging WHERE
            relation:source = ?
          </pattern>
          <pageSize>0</pageSize>
          <maxPageSize>0</maxPageSize>
        </genericPageProvider>
    
        <!-- page provider that should keep on using the VCS storage -->
        <genericPageProvider class="org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider" name="GET_TAGS_FOR_DOCUMENT_CORE">
          <property name="useUnrestrictedSession">true</property>
          <property name="language">NXTAG</property>
          <pattern>
            TAGISTARGET: SELECT DISTINCT tag:label FROM Tagging WHERE
            relation:source = ?
          </pattern>
          <pageSize>0</pageSize>
          <maxPageSize>0</maxPageSize>
        </genericPageProvider>
    
        <genericPageProvider class="org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider" name="GET_DOCUMENTS_FOR_TAG">
          <property name="useUnrestrictedSession">true</property>
          <property name="language">NXTAG</property>
          <pattern>
            TAGISTARGET: SELECT DISTINCT relation:source FROM Tagging WHERE
            tag:label = ?
          </pattern>
          <pageSize>0</pageSize>
          <maxPageSize>0</maxPageSize>
        </genericPageProvider>
    
        <!-- page provider that can be optimized using ES for instance -->
        <genericPageProvider class="org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider" name="GET_TAGS_FOR_DOCUMENT_AND_USER">
          <property name="useUnrestrictedSession">true</property>
          <property name="language">NXTAG</property>
          <pattern>
            TAGISTARGET: SELECT DISTINCT tag:label FROM Tagging WHERE
            relation:source = ? AND dc:creator = ?
          </pattern>
          <pageSize>0</pageSize>
          <maxPageSize>0</maxPageSize>
        </genericPageProvider>
    
        <!-- page provider that should keep on using the VCS storage -->
        <genericPageProvider class="org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider" name="GET_TAGS_FOR_DOCUMENT_AND_USER_CORE">
          <property name="useUnrestrictedSession">true</property>
          <property name="language">NXTAG</property>
          <pattern>
            TAGISTARGET: SELECT DISTINCT tag:label FROM Tagging WHERE
            relation:source = ? AND dc:creator = ?
          </pattern>
          <pageSize>0</pageSize>
          <maxPageSize>0</maxPageSize>
        </genericPageProvider>
    
        <genericPageProvider class="org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider" name="GET_DOCUMENTS_FOR_TAG_AND_USER">
          <property name="useUnrestrictedSession">true</property>
          <property name="language">NXTAG</property>
          <pattern>
            TAGISTARGET: SELECT DISTINCT relation:source FROM Tagging WHERE
            tag:label = ? AND dc:creator = ?
          </pattern>
          <pageSize>0</pageSize>
          <maxPageSize>0</maxPageSize>
        </genericPageProvider>
    
        <genericPageProvider class="org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider" name="GET_TAGS_TO_COPY_FOR_DOCUMENT">
          <property name="useUnrestrictedSession">true</property>
          <property name="language">NXTAG</property>
          <pattern>
            TAGISTARGET: SELECT tag:label, dc:created, dc:creator,
            relation:target FROM Tagging
            WHERE relation:source = ?
          </pattern>
          <pageSize>0</pageSize>
          <maxPageSize>0</maxPageSize>
        </genericPageProvider>
    
        <genericPageProvider class="org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider" name="GET_FACETED_TAG_SUGGESTIONS">
          <property name="useUnrestrictedSession">true</property>
          <pattern>
            SELECT nxtag:tags/*1/label FROM Document WHERE nxtag:tags/*1/label LIKE ? AND
            ecm:isProxy = 0
          </pattern>
          <pageSize>0</pageSize>
          <maxPageSize>0</maxPageSize>
        </genericPageProvider>
    
        <genericPageProvider class="org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider" name="GET_TAG_SUGGESTIONS">
          <property name="useUnrestrictedSession">true</property>
          <pattern>
            SELECT DISTINCT tag:label FROM Tag WHERE tag:label LIKE ? AND
            ecm:isProxy = 0
          </pattern>
          <pageSize>0</pageSize>
          <maxPageSize>0</maxPageSize>
        </genericPageProvider>
    
        <genericPageProvider class="org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider" name="GET_TAG_SUGGESTIONS_FOR_USER">
          <property name="useUnrestrictedSession">true</property>
          <pattern>
            SELECT DISTINCT tag:label FROM Tag WHERE tag:label LIKE ? AND
            ecm:isProxy = 0
          </pattern>
          <pageSize>0</pageSize>
          <maxPageSize>0</maxPageSize>
        </genericPageProvider>
    
        <genericPageProvider class="org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider" name="GET_ALL_TAGS">
          <property name="useUnrestrictedSession">true</property>
          <property name="language">NXTAG</property>
          <pattern>
            COUNTSOURCE: SELECT tag:label, relation:source FROM Tagging
          </pattern>
          <pageSize>0</pageSize>
          <maxPageSize>0</maxPageSize>
        </genericPageProvider>
    
        <genericPageProvider class="org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider" name="GET_ALL_TAGS_FOR_USER">
          <property name="useUnrestrictedSession">true</property>
          <property name="language">NXTAG</property>
          <pattern>
            COUNTSOURCE: SELECT tag:label, relation:source FROM Tagging WHERE
            dc:creator = ?
          </pattern>
          <pageSize>0</pageSize>
          <maxPageSize>0</maxPageSize>
        </genericPageProvider>
    
        <genericPageProvider class="org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider" name="GET_TAGS_FOR_DOCUMENTS">
          <property name="useUnrestrictedSession">true</property>
          <property name="language">NXTAG</property>
          <pattern>
            COUNTSOURCE: SELECT tag:label, relation:source FROM Tagging WHERE
            relation:source IN ?
          </pattern>
          <pageSize>0</pageSize>
          <maxPageSize>0</maxPageSize>
        </genericPageProvider>
    
        <genericPageProvider class="org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider" name="GET_TAGS_FOR_DOCUMENTS_AND_USER">
          <property name="useUnrestrictedSession">true</property>
          <property name="language">NXTAG</property>
          <pattern>
            COUNTSOURCE: SELECT tag:label, relation:source FROM Tagging WHERE
            relation:source IN ? AND dc:creator = ?
          </pattern>
          <pageSize>0</pageSize>
          <maxPageSize>0</maxPageSize>
        </genericPageProvider>
    
        <genericPageProvider class="org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider" name="GET_TAGGED_DOCUMENTS_UNDER">
          <property name="useUnrestrictedSession">true</property>
          <pattern>
            SELECT ecm:uuid FROM Document WHERE ecm:path STARTSWITH ?
          </pattern>
          <pageSize>0</pageSize>
          <maxPageSize>0</maxPageSize>
        </genericPageProvider>
    
      </extension>
  • nuxeo-platform-task-automation-2023.11.13.jar /OSGI-INF/pageproviders-contrib.xml
    <extension point="providers" target="org.nuxeo.ecm.platform.query.api.PageProviderService">
    
        <genericPageProvider class="org.nuxeo.ecm.platform.task.providers.UserTaskPageProvider" name="user_tasks">
          <property name="locale">#{localeSelector.localeString}</property>
          <pageSize>20</pageSize>
          <sort ascending="true" column="nt:dueDate"/>
        </genericPageProvider>
    
      </extension>
  • nuxeo-platform-task-core-2023.11.13.jar /OSGI-INF/task-pageprovider-contrib.xml
    <extension point="providers" target="org.nuxeo.ecm.platform.query.api.PageProviderService">
    
        <coreQueryPageProvider name="GET_TASKS_FOR_ACTORS">
          <pattern>
            SELECT * FROM Document WHERE ecm:mixinType = 'Task' AND
            ecm:currentLifeCycleState
            NOT IN ('ended', 'cancelled') AND ecm:isProxy =
            0 AND nt:actors/* IN ?
          </pattern>
          <pageSize>0</pageSize>
          <maxPageSize>0</maxPageSize>
        </coreQueryPageProvider>
    
        <coreQueryPageProvider name="GET_TASKS_FOR_TARGET_DOCUMENT">
          <pattern>
            SELECT * FROM Document WHERE ecm:mixinType = 'Task' AND
            ecm:currentLifeCycleState
            NOT IN ('ended', 'cancelled') AND ecm:isProxy =
            0 AND nt:targetDocumentId = ?
          </pattern>
          <pageSize>0</pageSize>
          <maxPageSize>0</maxPageSize>
        </coreQueryPageProvider>
    
        <coreQueryPageProvider name="GET_TASKS_FOR_TARGET_DOCUMENT_AND_ACTORS">
          <pattern>
            SELECT * FROM Document WHERE ecm:mixinType = 'Task' AND
            ecm:currentLifeCycleState
            NOT IN ('ended', 'cancelled') AND ecm:isProxy =
            0 AND nt:targetDocumentId = ? AND nt:actors/* IN ?
          </pattern>
          <pageSize>0</pageSize>
          <maxPageSize>0</maxPageSize>
        </coreQueryPageProvider>
    
        <coreQueryPageProvider name="GET_TASKS_FOR_TARGET_DOCUMENTS">
          <pattern>
            SELECT * FROM Document WHERE ecm:mixinType = 'Task' AND
            ecm:currentLifeCycleState
            NOT IN ('ended', 'cancelled') AND ecm:isProxy =
            0 AND (nt:targetDocumentId = ? OR nt:targetDocumentsIds/* IN (?))
          </pattern>
          <pageSize>0</pageSize>
          <maxPageSize>0</maxPageSize>
        </coreQueryPageProvider>
    
        <coreQueryPageProvider name="GET_TASKS_FOR_TARGET_DOCUMENTS_AND_ACTORS">
          <pattern>
            SELECT * FROM Document WHERE ecm:mixinType = 'Task' AND
            ecm:currentLifeCycleState
            NOT IN ('ended', 'cancelled') AND ecm:isProxy =
            0 AND (nt:targetDocumentId = ? OR nt:targetDocumentsIds/* IN (?)) AND
            nt:actors/* IN ?
          </pattern>
          <pageSize>0</pageSize>
          <maxPageSize>0</maxPageSize>
        </coreQueryPageProvider>
    
        <coreQueryPageProvider name="GET_TASKS_FOR_PROCESS">
          <pattern>
            SELECT * FROM Document WHERE ecm:mixinType = 'Task' AND
            ecm:currentLifeCycleState
            NOT IN ('ended', 'cancelled') AND ecm:isProxy =
            0 AND nt:processId = ?
          </pattern>
          <pageSize>0</pageSize>
          <maxPageSize>0</maxPageSize>
        </coreQueryPageProvider>
    
        <coreQueryPageProvider name="GET_TASKS_FOR_PROCESS_AND_ACTORS">
          <pattern>
            SELECT * FROM Document WHERE ecm:mixinType = 'Task' AND
            ecm:currentLifeCycleState
            NOT IN ('ended', 'cancelled') AND ecm:isProxy =
            0 AND nt:processId = ? AND nt:actors/* IN ?
          </pattern>
          <pageSize>0</pageSize>
          <maxPageSize>0</maxPageSize>
        </coreQueryPageProvider>
    
        <coreQueryPageProvider name="GET_TASKS_FOR_PROCESS_AND_NODE">
          <pattern>
            SELECT * FROM Document WHERE ecm:mixinType = 'Task' AND
            ecm:currentLifeCycleState
            NOT IN ('ended', 'cancelled') AND ecm:isProxy =
            0 AND nt:processId = ? AND nt:task_variables/*/key = 'nodeId' AND
            nt:task_variables/*/value = ?
          </pattern>
          <pageSize>0</pageSize>
          <maxPageSize>0</maxPageSize>
        </coreQueryPageProvider>
    
        <coreQueryPageProvider name="GET_TASKS_FOR_TARGET_DOCUMENTS_AND_ACTORS_OR_DELEGATED_ACTORS">
          <pattern>
            SELECT * FROM Document WHERE ecm:mixinType = 'Task' AND
            ecm:currentLifeCycleState
            NOT IN ('ended', 'cancelled') AND ecm:isProxy =
            0 AND (nt:targetDocumentId = ? OR nt:targetDocumentsIds/* IN (?)) AND
            (nt:actors/* IN ? OR nt:delegatedActors/* IN ?)
          </pattern>
          <pageSize>0</pageSize>
          <maxPageSize>0</maxPageSize>
        </coreQueryPageProvider>
    
        <coreQueryPageProvider name="GET_TASKS_FOR_ACTORS_OR_DELEGATED_ACTORS">
          <pattern>
            SELECT * FROM Document WHERE ecm:mixinType = 'Task' AND
            ecm:currentLifeCycleState
            NOT IN ('ended', 'cancelled') AND ecm:isProxy =
            0 AND (nt:actors/* IN ? OR nt:delegatedActors/* IN ?)
          </pattern>
          <pageSize>0</pageSize>
          <maxPageSize>0</maxPageSize>
        </coreQueryPageProvider>
    
      </extension>
  • nuxeo-platform-usermanager-2023.11.13.jar /OSGI-INF/pageproviders-contrib.xml
    <extension point="providers" target="org.nuxeo.ecm.platform.query.api.PageProviderService">
    
        <genericPageProvider class="org.nuxeo.ecm.platform.usermanager.providers.UsersPageProvider" name="users_listing">
          <pageSize>20</pageSize>
        </genericPageProvider>
    
        <genericPageProvider class="org.nuxeo.ecm.platform.usermanager.providers.NuxeoPrincipalsPageProvider" name="nuxeo_principals_listing">
          <pageSize>20</pageSize>
        </genericPageProvider>
    
        <genericPageProvider class="org.nuxeo.ecm.platform.usermanager.providers.GroupsPageProvider" name="groups_listing">
          <pageSize>20</pageSize>
        </genericPageProvider>
    
        <genericPageProvider class="org.nuxeo.ecm.platform.usermanager.providers.NuxeoGroupsPageProvider" name="nuxeo_groups_listing">
          <pageSize>20</pageSize>
        </genericPageProvider>
    
        <genericPageProvider class="org.nuxeo.ecm.platform.usermanager.providers.GroupMemberUsersPageProvider" name="nuxeo_group_member_users_listing">
          <pageSize>20</pageSize>
        </genericPageProvider>
        <genericPageProvider class="org.nuxeo.ecm.platform.usermanager.providers.GroupMemberGroupsPageProvider" name="nuxeo_group_member_groups_listing">
          <pageSize>20</pageSize>
        </genericPageProvider>
    
      </extension>
  • nuxeo-platform-webapp-core-2023.11.13.jar /OSGI-INF/pageproviders-webapp-contrib.xml
    <extension point="providers" target="org.nuxeo.ecm.platform.query.api.PageProviderService">
    
        <coreQueryPageProvider name="search_media_all">
          <property name="maxResults">PAGE_SIZE</property>
          <pattern>
            SELECT * FROM Document WHERE ecm:primaryType = ?
          </pattern>
          <sort ascending="true" column="dc:title"/>
          <pageSize>100</pageSize>
        </coreQueryPageProvider>
    
        <coreQueryPageProvider name="search_media_by_title">
          <property name="maxResults">PAGE_SIZE</property>
          <pattern>
            SELECT * FROM Document WHERE ecm:primaryType = ?
            AND ecm:fulltext LIKE ?
          </pattern>
          <sort ascending="true" column="dc:title"/>
          <pageSize>100</pageSize>
        </coreQueryPageProvider>
    
        <genericPageProvider class="org.nuxeo.ecm.webapp.provider.ImportFolderPageProvider" name="importFolders">
          <pattern escapeParameters="true" quoteParameters="false">
            SELECT * FROM Document WHERE ecm:fulltext.dc:title LIKE '?%' AND ecm:mixinType !=
            'HiddenInNavigation' AND ecm:mixinType = 'Folderish'
            AND ecm:isTrashed = 0
            AND SORTED_COLUMN IS NOT NULL
          </pattern>
          <sort ascending="true" column="dc:title"/>
          <pageSize>10</pageSize>
        </genericPageProvider>
    
        <coreQueryPageProvider name="breadcrumb_user_domains">
          <property name="maxResults">DEFAULT_NAVIGATION_RESULTS</property>
          <pattern>
            SELECT * FROM Domain WHERE ecm:mixinType != 'HiddenInNavigation'
            AND ecm:isTrashed = 0
          </pattern>
          <sort ascending="true" column="dc:title"/>
          <pageSize>0</pageSize>
        </coreQueryPageProvider>
    
        <coreQueryPageProvider name="startup_domains">
          <property name="maxResults">PAGE_SIZE</property>
          <pattern>
            SELECT * FROM Domain
            WHERE ecm:mixinType != 'HiddenInNavigation'
            AND ecm:isTrashed = 0
            AND ecm:isVersion = 0
            AND ecm:isProxy = 0
          </pattern>
          <sort ascending="true" column="dc:title"/>
          <pageSize>2</pageSize>
    
        </coreQueryPageProvider>
    
      </extension>
  • nuxeo-rest-api-server-2023.11.13.jar /OSGI-INF/searchadapter-pp-contrib.xml
    <extension point="providers" target="org.nuxeo.ecm.platform.query.api.PageProviderService">
            <coreQueryPageProvider name="REST_API_SEARCH_ADAPTER"/>
        </extension>
  • nuxeo-retention-2023.3.6.jar /OSGI-INF/retention-pageproviders.xml
    <extension point="providers" target="org.nuxeo.ecm.platform.query.api.PageProviderService">
    
        <coreQueryPageProvider name="manual_retention_rule_suggestion">
          <whereClause>
            <predicate operator="=" parameter="retention_rule:docTypes">
              <field name="docType"/>
            </predicate>
            <fixedPart escapeParameters="true" quoteParameters="false"> dc:title ILIKE '?%' AND ecm:mixinType =
              'RetentionRule' AND retention_rule:enabled = 1 AND
              ecm:isTrashed = 0
            </fixedPart>
          </whereClause>
          <sort ascending="true" column="ecm:pos"/>
          <pageSize>50</pageSize>
        </coreQueryPageProvider>
    
        <coreQueryPageProvider name="active_retention_rule">
          <pattern escapeParameters="true" quoteParameters="false"> SELECT
            * FROM Document WHERE ecm:mixinType = 'RetentionRule' AND
            retention_rule:enabled = 1 AND ecm:isTrashed = 0
          </pattern>
          <sort ascending="true" column="ecm:pos"/>
          <pageSize>50</pageSize>
        </coreQueryPageProvider>
    
        <genericPageProvider class="org.nuxeo.elasticsearch.provider.ElasticSearchNxqlPageProvider" name="retention_search">
          <searchDocumentType>RetentionSearch</searchDocumentType>
          <whereClause>
            <fixedPart>
              file:content/name IS NOT NULL
              AND ecm:isVersion = 0
              AND ecm:mixinType != 'HiddenInNavigation'
            </fixedPart>
            <predicate operator="FULLTEXT" parameter="ecm:fulltext">
              <field name="ecm_fulltext" schema="retention_search"/>
            </predicate>
            <predicate operator="IN" parameter="dc:creator">
              <field name="dc_creator" schema="retention_search"/>
            </predicate>
          </whereClause>
          <aggregates>
            <aggregate id="doc_type_agg" parameter="ecm:primaryType" type="terms">
              <field name="doc_type_agg" schema="retention_search"/>
              <properties>
                <property name="size">10</property>
              </properties>
            </aggregate>
            <aggregate id="rules_agg" parameter="record:ruleIds" type="terms">
              <field name="rules_agg" schema="retention_search"/>
              <properties>
                <property name="size">10</property>
              </properties>
            </aggregate>
            <aggregate id="record_retain_agg" parameter="record:retainUntil" type="date_range">
              <field name="record_retain_agg" schema="retention_search"/>
              <properties>
                <property name="format">"dd-MM-yyyy"</property>
              </properties>
              <dateRanges>
                <dateRange fromDate="now-24H" key="last24h" toDate="now"/>
                <dateRange fromDate="now-7d" key="lastWeek" toDate="now-24H"/>
                <dateRange fromDate="now-1M" key="lastMonth" toDate="now-7d"/>
                <dateRange fromDate="now-1y" key="lastYear" toDate="now-1M"/>
                <dateRange key="priorToLastYear" toDate="now-1y"/>
              </dateRanges>
            </aggregate>
            <aggregate id="ecm_retain_agg" parameter="ecm:retainUntil" type="date_range">
              <field name="ecm_retain_agg" schema="retention_search"/>
              <properties>
                <property name="format">"dd-MM-yyyy"</property>
              </properties>
              <dateRanges>
                <dateRange fromDate="now" key="next24Hours" toDate="now+24H"/>
                <dateRange fromDate="now+24H" key="beforeAWeek" toDate="now+7d"/>
                <dateRange fromDate="now+7d" key="beforeAMonth" toDate="now+1M"/>
                <dateRange fromDate="now+1M" key="beforeAYear" toDate="now+1y"/>
                <dateRange fromDate="now+1y" key="afterAYear" toDate="now+1000y"/>
                <dateRange fromDate="now+1000y" key="indeterminate"/>
              </dateRanges>
            </aggregate>
          </aggregates>
          <sort ascending="true" column="ecm:retainUntil"/>
          <quickFilters>
            <quickFilter name="withoutRule">
              <clause>record:ruleIds/* IS NULL</clause>
              <clause>ecm:retainUntil IS NULL</clause>
            </quickFilter>
            <quickFilter name="withRule">
              <clause>record:ruleIds/* IS NOT NULL</clause>
              <clause>ecm:retainUntil IS NOT NULL</clause>
            </quickFilter>
            <quickFilter name="hasLegalHold">
              <clause>ecm:hasLegalHold = 1</clause>
            </quickFilter>
            <quickFilter name="hasNotLegalHold">
              <clause>ecm:hasLegalHold = 0</clause>
            </quickFilter>
            <quickFilter name="exceptTrashed">
              <clause>ecm:isTrashed = 0</clause>
            </quickFilter>
          </quickFilters>
          <pageSize>20</pageSize>
        </genericPageProvider>
    
      </extension>
  • nuxeo-routing-core-2023.11.13.jar /OSGI-INF/pageproviders-contrib.xml
    <extension point="providers" target="org.nuxeo.ecm.platform.query.api.PageProviderService">
    
        <coreQueryPageProvider name="DOC_ROUTING_SEARCH_ALL_ROUTE_MODELS">
          <pattern>
            SELECT * FROM DocumentRoute WHERE ecm:currentLifeCycleState = 'validated' AND ecm:isTrashed = 0
          </pattern>
          <sort ascending="true" column="dc:title"/>
          <pageSize>20</pageSize>
        </coreQueryPageProvider>
    
        <coreQueryPageProvider name="DOC_ROUTING_SEARCH_ROUTE_MODELS_WITH_TITLE">
          <pattern>
            SELECT * FROM DocumentRoute WHERE ecm:currentLifeCycleState = 'validated' AND ecm:isTrashed = 0
            AND dc:title LIKE ?
          </pattern>
          <sort ascending="true" column="dc:title"/>
          <pageSize>20</pageSize>
        </coreQueryPageProvider>
    
        <coreQueryPageProvider name="DOC_ROUTING_SEARCH_ALL_ROUTE_INSTANCES">
          <pattern>
            SELECT * FROM DocumentRoute WHERE ecm:currentLifeCycleState =
            'running' AND ecm:isTrashed = 0 AND dc:title LIKE ?
          </pattern>
          <sort ascending="true" column="dc:title"/>
          <pageSize>20</pageSize>
        </coreQueryPageProvider>
    
        <coreQueryPageProvider name="CURRENT_DOC_ROUTING_SEARCH_ATTACHED_DOC">
          <pattern>
            SELECT * FROM Document WHERE ecm:mixinType != 'Folderish' AND
            ecm:isTrashed = 0 AND dc:title ILIKE ?
          </pattern>
          <sort ascending="true" column="dc:title"/>
          <pageSize>20</pageSize>
        </coreQueryPageProvider>
    
        <coreQueryPageProvider name="SEARCH_ROUTE_BY_ATTACHED_DOC">
          <pattern>
            SELECT * FROM DocumentRoute WHERE (ecm:currentLifeCycleState = 'running'
            OR ecm:currentLifeCycleState = 'ready') AND ecm:isTrashed = 0 AND docri:participatingDocuments/*
            IN (?)
          </pattern>
          <sort ascending="true" column="dc:title"/>
          <pageSize>20</pageSize>
        </coreQueryPageProvider>
    
        <genericPageProvider class="org.nuxeo.ecm.platform.routing.core.provider.RoutingTaskPageProvider" name="nuxeo_tasks_listing">
          <pageSize>20</pageSize>
        </genericPageProvider>
    
      </extension>
  • nuxeo-salesforce-core-2023.0.2.jar /OSGI-INF/SalesforceComponent.xml
    <extension point="providers" target="org.nuxeo.ecm.platform.query.api.PageProviderService">
      	<coreQueryPageProvider name="sfdc_load_library">
          <searchDocumentType>SalesforceSearch</searchDocumentType>
          <whereClause>
            <fixedPart>
          	  ecm:mixinType != 'HiddenInNavigation' AND ecm:isVersion = 0 AND ecm:isTrashed = 0
          	</fixedPart>
            <predicate operator="=" parameter="sf:objectId">
              <field name="recordId" schema="salesforce_search"/>
            </predicate>
          </whereClause>
          <sort ascending="false" column="dc:created"/>      
          <pageSize>50</pageSize>
        </coreQueryPageProvider>  	
      
      	<coreQueryPageProvider name="sfdc_linked_docs">
          <searchDocumentType>SalesforceSearch</searchDocumentType>
          <whereClause>
            <fixedPart>
          	  ecm:mixinType != 'HiddenInNavigation' AND ecm:isVersion = 0 AND ecm:isTrashed = 0 AND dc:source LIKE :recordId
          	</fixedPart>
            <predicate operator="FULLTEXT" parameter="ecm:fulltext">
              <field name="ecm_fulltext" schema="salesforce_search"/>
            </predicate>
          </whereClause>
          <quickFilters>
            <quickFilter name="noFolder">
              <clause>ecm:mixinType != 'Folderish'</clause>
            </quickFilter>
          </quickFilters>
          <!--  sort column="dc:modified" ascending="false" / -->
          <pageSize>50</pageSize>
        </coreQueryPageProvider>  	
      </extension>
  • nuxeo-search-core-2023.11.13.jar /OSGI-INF/savedsearch-pageprovider-contrib.xml
    <extension point="providers" target="org.nuxeo.ecm.platform.query.api.PageProviderService">
    
        <coreQueryPageProvider name="SAVED_SEARCHES_ALL">
          <pattern>
            SELECT * FROM Document WHERE ecm:mixinType = 'SavedSearch'
            AND ((saved:query IS NOT NULL AND saved:queryLanguage IS NOT NULL)
                  OR saved:providerName IS NOT NULL)
            AND ecm:isProxy = 0
            AND ecm:isVersion = 0
            AND ecm:isTrashed = 0
          </pattern>
          <sort ascending="true" column="dc:title"/>
          <pageSize>50</pageSize>
        </coreQueryPageProvider>
    
        <coreQueryPageProvider name="SAVED_SEARCHES_ALL_PAGE_PROVIDER">
          <pattern>
            SELECT * FROM Document WHERE ecm:mixinType = 'SavedSearch'
            AND ((saved:query IS NOT NULL AND saved:queryLanguage IS NOT NULL)
                  OR saved:providerName IS NOT NULL)
            AND ecm:isProxy = 0
            AND ecm:isVersion = 0
            AND ecm:isTrashed = 0
            AND saved:providerName = :pageProvider
          </pattern>
          <sort ascending="true" column="dc:title"/>
          <pageSize>50</pageSize>
        </coreQueryPageProvider>
    
        <coreQueryPageProvider name="SAVED_SEARCHES">
          <property name="maxResults">DEFAULT_NAVIGATION_RESULTS</property>
          <pattern>
            SELECT * FROM Document WHERE ecm:mixinType = 'SavedSearch'
            AND cvd:contentViewName IS NOT NULL
            AND dc:creator = ? AND ecm:isProxy = 0
            AND ecm:isVersion = 0
            AND ecm:isTrashed = 0
            AND SORTED_COLUMN IS NOT NULL
          </pattern>
          <sort ascending="true" column="dc:title"/>
        </coreQueryPageProvider>
    
        <coreQueryPageProvider name="SHARED_SAVED_SEARCHES">
          <property name="maxResults">DEFAULT_NAVIGATION_RESULTS</property>
          <pattern>
            SELECT * FROM Document WHERE ecm:mixinType = 'SavedSearch'
            AND cvd:contentViewName IS NOT NULL
            AND dc:creator != ? AND ecm:isProxy = 0
            AND ecm:isVersion = 0
            AND ecm:isTrashed = 0
            AND SORTED_COLUMN IS NOT NULL
          </pattern>
          <sort ascending="true" column="dc:title"/>
        </coreQueryPageProvider>
    
      </extension>
  • nuxeo-search-core-2023.11.13.jar /OSGI-INF/search-pageprovider-contrib.xml
    <extension point="providers" target="org.nuxeo.ecm.platform.query.api.PageProviderService">
    
        <coreQueryPageProvider name="default_search">
          <trackUsage>true</trackUsage>
          <searchDocumentType>DefaultSearch</searchDocumentType>
          <whereClause>
            <fixedPart>
              ecm:primaryType NOT IN ('Domain', 'SectionRoot', 'TemplateRoot', 'WorkspaceRoot', 'Favorites')
              AND ecm:mixinType != 'HiddenInNavigation'
              AND NOT (ecm:mixinType = 'Collection' AND ecm:name = 'Locally Edited')
              AND ecm:isVersion = 0
              AND ecm:isTrashed = 0
              AND ecm:parentId IS NOT NULL
              AND SORTED_COLUMN IS NOT NULL
            </fixedPart>
            <predicate operator="FULLTEXT" parameter="ecm:fulltext">
              <field name="ecm_fulltext" schema="default_search"/>
            </predicate>
            <predicate operator="IN" parameter="dc:creator">
              <field name="dc_creator" schema="default_search"/>
            </predicate>
            <predicate operator="BETWEEN" parameter="dc:created">
              <field name="dc_created_min" schema="default_search"/>
              <field name="dc_created_max" schema="default_search"/>
            </predicate>
            <predicate operator="BETWEEN" parameter="dc:modified">
              <field name="dc_modified_min" schema="default_search"/>
              <field name="dc_modified_max" schema="default_search"/>
            </predicate>
            <predicate operator="IN" parameter="dc:nature">
              <field name="dc_nature" schema="default_search"/>
            </predicate>
            <predicate operator="STARTSWITH" parameter="dc:subjects">
              <field name="dc_subjects" schema="default_search"/>
            </predicate>
            <predicate operator="STARTSWITH" parameter="dc:coverage">
              <field name="dc_coverage" schema="default_search"/>
            </predicate>
            <predicate operator="STARTSWITH" parameter="ecm:path">
              <field name="ecm_path" schema="default_search"/>
            </predicate>
            <predicate operator="IN" parameter="ecm:tag">
              <field name="ecm_tags" schema="default_search"/>
            </predicate>
            <predicate operator="IN" parameter="collectionMember:collectionIds">
              <field name="ecm_collections" schema="default_search"/>
            </predicate>
          </whereClause>
          <aggregates>
            <aggregate id="dc_nature_agg" parameter="dc:nature" type="terms">
              <field name="dc_nature_agg" schema="default_search"/>
              <properties>
                <property name="size">10</property>
              </properties>
            </aggregate>
            <aggregate id="dc_subjects_agg" parameter="dc:subjects" type="terms">
              <field name="dc_subjects_agg" schema="default_search"/>
              <properties>
                <property name="size">10</property>
              </properties>
            </aggregate>
            <aggregate id="dc_coverage_agg" parameter="dc:coverage" type="terms">
              <field name="dc_coverage_agg" schema="default_search"/>
              <properties>
                <property name="size">10</property>
              </properties>
            </aggregate>
            <aggregate id="dc_creator_agg" parameter="dc:creator" type="terms">
              <field name="dc_creator_agg" schema="default_search"/>
              <properties>
                <property name="size">10</property>
              </properties>
            </aggregate>
            <aggregate id="common_size_agg" parameter="file:content.length" type="range">
              <field name="common_size_agg" schema="default_search"/>
              <ranges>
                <range key="tiny" to="102400"/>
                <range from="102401" key="small" to="1048576"/>
                <range from="1048577" key="medium" to="10485760"/>
                <range from="10485761" key="big" to="104857600"/>
                <range from="104857601" key="huge"/>
              </ranges>
            </aggregate>
            <aggregate id="dc_modified_agg" parameter="dc:modified" type="date_range">
              <field name="dc_modified_agg" schema="default_search"/>
              <properties>
                <property name="format">"dd-MM-yyyy"</property>
              </properties>
              <dateRanges>
                <dateRange fromDate="now-24H" key="last24h" toDate="now"/>
                <dateRange fromDate="now-7d" key="lastWeek" toDate="now-24H"/>
                <dateRange fromDate="now-1M" key="lastMonth" toDate="now-7d"/>
                <dateRange fromDate="now-1y" key="lastYear" toDate="now-1M"/>
                <dateRange key="priorToLastYear" toDate="now-1y"/>
              </dateRanges>
            </aggregate>
          </aggregates>
          <quickFilters>
            <quickFilter name="noFolder">
              <clause>ecm:mixinType != 'Folderish'</clause>
            </quickFilter>
            <quickFilter name="mostRecent">
              <sort ascending="false" column="dc:modified"/>
            </quickFilter>
            <quickFilter name="onlyValidated">
              <clause>ecm:currentLifeCycleState = 'approved'</clause>
              <sort ascending="false" column="dc:modified"/>
            </quickFilter>
          </quickFilters>
          <pageSize>20</pageSize>
        </coreQueryPageProvider>
    
        <coreQueryPageProvider name="default_trash_search">
          <trackUsage>true</trackUsage>
          <searchDocumentType>DefaultSearch</searchDocumentType>
          <whereClause>
            <fixedPart>
              ecm:primaryType NOT IN ('Domain', 'SectionRoot', 'TemplateRoot', 'WorkspaceRoot', 'Favorites')
              AND ecm:mixinType != 'HiddenInNavigation'
              AND NOT (ecm:mixinType = 'Collection' AND ecm:name = 'Locally Edited')
              AND ecm:isCheckedInVersion = 0
              AND ecm:isTrashed = 1
              AND ecm:parentId IS NOT NULL
              AND SORTED_COLUMN IS NOT NULL
            </fixedPart>
            <predicate operator="FULLTEXT" parameter="ecm:fulltext">
              <field name="ecm_fulltext" schema="default_search"/>
            </predicate>
            <predicate operator="STARTSWITH" parameter="ecm:path">
              <field name="ecm_path" schema="default_search"/>
            </predicate>
          </whereClause>
          <aggregates>
            <aggregate id="dc_creator_agg" parameter="dc:creator" type="terms">
              <field name="dc_creator_agg" schema="default_search"/>
              <properties>
                <property name="size">10</property>
              </properties>
            </aggregate>
            <aggregate id="common_size_agg" parameter="file:content.length" type="range">
              <field name="common_size_agg" schema="default_search"/>
              <ranges>
                <range key="tiny" to="102400"/>
                <range from="102401" key="small" to="1048576"/>
                <range from="1048577" key="medium" to="10485760"/>
                <range from="10485761" key="big" to="104857600"/>
                <range from="104857601" key="huge"/>
              </ranges>
            </aggregate>
          </aggregates>
          <pageSize>20</pageSize>
        </coreQueryPageProvider>
    
        <coreQueryPageProvider name="simple_search">
          <trackUsage>true</trackUsage>
          <searchDocumentType>DefaultSearch</searchDocumentType>
          <whereClause>
            <fixedPart>
              ecm:mixinType != 'HiddenInNavigation' AND
              ecm:isVersion = 0
              AND ecm:isTrashed = 0
              AND ecm:parentId IS NOT NULL
              AND SORTED_COLUMN IS NOT NULL
            </fixedPart>
            <predicate operator="FULLTEXT" parameter="ecm:fulltext">
              <field name="ecm_fulltext" schema="default_search"/>
            </predicate>
          </whereClause>
          <!-- sort column="dc:title" ascending="true" / sort by fulltext relevance -->
          <pageSize>20</pageSize>
        </coreQueryPageProvider>
    
        <coreQueryPageProvider name="nxql_search">
          <trackUsage>true</trackUsage>
          <searchDocumentType>DefaultSearch</searchDocumentType>
          <pattern escapeParameters="false" quoteParameters="false">?</pattern>
          <!-- sort column="dc:title" ascending="true" / sort by fulltext relevance -->
          <pageSize>20</pageSize>
        </coreQueryPageProvider>
    
        <coreQueryPageProvider class="org.nuxeo.elasticsearch.provider.ElasticSearchNxqlPageProvider" name="expired_search">
          <trackUsage>true</trackUsage>
          <property name="maxResults">DEFAULT_NAVIGATION_RESULTS</property>
          <searchDocumentType>ExpiredSearch</searchDocumentType>
          <whereClause>
            <fixedPart>
              ecm:isVersion = 0 AND
              ecm:mixinType !=
              'HiddenInNavigation' AND ecm:isTrashed = 0
            </fixedPart>
            <predicate operator="FULLTEXT" parameter="dc:title">
              <field name="title" schema="expired_search"/>
            </predicate>
            <predicate operator="&lt;" parameter="dc:expired">
              <field name="expired_max" schema="expired_search"/>
            </predicate>
            <predicate operator=">" parameter="dc:expired">
              <field name="expired_min" schema="expired_search"/>
            </predicate>
          </whereClause>
          <aggregates>
            <aggregate id="dc_creator_agg" parameter="dc:creator" type="terms">
              <field name="dc_creator_agg" schema="expired_search"/>
              <properties>
                <property name="size">10</property>
              </properties>
            </aggregate>
            <aggregate id="dc_expired_agg" parameter="dc:expired" type="date_histogram">
              <field name="dc_expired_agg" schema="expired_search"/>
              <properties>
                <property name="interval">month</property>
                <property name="format">MM-yyyy</property>
                <property name="order">key asc</property>
              </properties>
            </aggregate>
          </aggregates>
          <sort ascending="true" column="dc:expired"/>
          <pageSize>20</pageSize>
          <quickFilters>
            <quickFilter name="approved">
              <clause>ecm:currentLifeCycleState = 'approved'</clause>
            </quickFilter>
          </quickFilters>
        </coreQueryPageProvider>
    
      </extension>
  • nuxeo-template-rendering-core-2023.11.13.jar /OSGI-INF/pageprovider-contrib.xml
    <extension point="providers" target="org.nuxeo.ecm.platform.query.api.PageProviderService">
    
        <coreQueryPageProvider name="template_based">
          <pattern escapeParameters="true" quoteParameters="false">
            SELECT * FROM Document WHERE ecm:mixinType = 'TemplateBased' AND
            ecm:isTrashed = 0 AND
            nxts:bindings/*/templateId IN (?) AND ecm:isVersion = ?
          </pattern>
          <sort ascending="true" column="dc:title"/>
          <pageSize>20</pageSize>
        </coreQueryPageProvider>
    
      </extension>
  • nuxeo-user-dashboard-2023.11.13.jar /OSGI-INF/pageproviders-contrib.xml
    <extension point="providers" target="org.nuxeo.ecm.platform.query.api.PageProviderService">
    
        <coreQueryPageProvider name="user_domains">
          <property name="maxResults">DEFAULT_NAVIGATION_RESULTS</property>
          <pattern>
            SELECT * FROM Domain WHERE ecm:mixinType != 'HiddenInNavigation'
            AND ecm:isTrashed = 0
          </pattern>
          <sort ascending="true" column="dc:title"/>
          <pageSize>0</pageSize>
        </coreQueryPageProvider>
    
        <coreQueryPageProvider name="domain_published_documents">
          <property name="maxResults">DEFAULT_NAVIGATION_RESULTS</property>
          <pattern>
            SELECT * FROM Document WHERE ecm:path STARTSWITH ? AND ecm:mixinType !=
            'Folderish' AND ecm:mixinType != 'HiddenInNavigation' AND
            ecm:mixinType != 'SystemDocument' AND
            ecm:isVersion = 0 AND ecm:isProxy = 1
          </pattern>
          <sort ascending="false" column="dc:issued"/>
          <pageSize>5</pageSize>
        </coreQueryPageProvider>
    
        <coreQueryPageProvider name="user_documents">
          <property name="maxResults">DEFAULT_NAVIGATION_RESULTS</property>
          <pattern>
            SELECT * FROM Document WHERE dc:contributors = ? AND ecm:mixinType !=
            'Folderish' AND ecm:mixinType != 'HiddenInNavigation' AND
            ecm:mixinType != 'SystemDocument' AND
            ecm:isVersion = 0 AND ecm:isProxy = 0 AND
            ecm:isTrashed = 0 AND ecm:path STARTSWITH ?
          </pattern>
          <sort ascending="true" column="dc:modified"/>
          <pageSize>5</pageSize>
        </coreQueryPageProvider>
    
        <coreQueryPageProvider name="user_sections">
          <property name="maxResults">DEFAULT_NAVIGATION_RESULTS</property>
          <pattern>
            SELECT * FROM Document WHERE ecm:primaryType = 'Section' AND
            ecm:mixinType != 'HiddenInNavigation' AND ecm:path STARTSWITH ?
          </pattern>
          <sort ascending="true" column="dc:modified"/>
          <pageSize>5</pageSize>
        </coreQueryPageProvider>
    
        <coreQueryPageProvider name="user_sites">
          <property name="maxResults">DEFAULT_NAVIGATION_RESULTS</property>
          <pattern>
            SELECT * FROM Document WHERE ecm:mixinType = 'WebView' AND
            ecm:isTrashed = 0 AND webc:isWebContainer = 1 AND
            ecm:path STARTSWITH ?
          </pattern>
          <sort ascending="true" column="webc:name"/>
          <pageSize>5</pageSize>
        </coreQueryPageProvider>
    
        <coreQueryPageProvider name="user_workspaces">
          <property name="maxResults">DEFAULT_NAVIGATION_RESULTS</property>
          <pattern>
            SELECT * FROM Workspace WHERE ecm:mixinType != 'HiddenInNavigation' AND
            ecm:isTrashed = 0 AND ecm:isProxy = 0 AND ecm:path
            STARTSWITH ?
          </pattern>
          <sort ascending="true" column="dc:title"/>
          <pageSize>5</pageSize>
        </coreQueryPageProvider>
    
        <coreQueryPageProvider name="user_deleted_documents">
          <property name="maxResults">DEFAULT_NAVIGATION_RESULTS</property>
          <pattern>
            SELECT * FROM Document WHERE dc:contributors = ? AND ecm:mixinType !=
            'Folderish' AND ecm:mixinType != 'HiddenInNavigation' AND
            ecm:mixinType != 'SystemDocument' AND
            ecm:isVersion = 0 AND ecm:isProxy = 0 AND
            ecm:isTrashed = 1
          </pattern>
          <sort ascending="true" column="dc:modified"/>
          <pageSize>5</pageSize>
        </coreQueryPageProvider>
    
        <coreQueryPageProvider name="user_favorites">
          <property name="maxResults">DEFAULT_NAVIGATION_RESULTS</property>
          <pattern>
            SELECT * FROM Document where ecm:mixinType != 'HiddenInNavigation' AND
            ecm:isVersion = 0 AND ecm:isTrashed = 0 AND
            collectionMember:collectionIds/* = ?
          </pattern>
          <sort ascending="true" column="dc:title"/>
          <pageSize>5</pageSize>
        </coreQueryPageProvider>
    
        <coreQueryPageProvider name="user_shared_documents">
          <property name="maxResults">DEFAULT_NAVIGATION_RESULTS</property>
          <pattern>
            SELECT * FROM Document where ecm:mixinType != 'HiddenInNavigation' AND
            ecm:isVersion = 0 AND ecm:isTrashed = 0 AND
            ecm:acl/*1/grant = 1 AND
            ecm:acl/*1/permission IN ('Read', 'ReadWrite', 'ReadRemove', 'Everything') AND
            ecm:acl/*1/principal IN ?
          </pattern>
          <sort ascending="true" column="dc:title"/>
          <pageSize>5</pageSize>
        </coreQueryPageProvider>
    
      </extension>